home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir39 / 4touch3.zip / TOUCH.BTM < prev    next >
Text File  |  1994-05-07  |  6KB  |  182 lines

  1. @echo off
  2.   setlocal ^ unalias *
  3.  
  4.   set _OrigDate=%_Date ^ set _OrigTime=%_Time
  5.   set _OrigFg=%_Fg     ^ set _OrigBg=%_Bg
  6.  
  7.   On Break (Date %_Origdate ^ Time %_OrigTime ^ setdos /s10:100 ^ cancel 255)
  8.  
  9.   iff %1 eq /? .or. %1 eq ? (gosub Help ^ cancel)
  10.  
  11.   iff not exist %1 then ^ beep
  12.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Missing filespec or file(s) not found, program aborted !`
  13.     echo. ^ gosub Help ^ cancel 4
  14.   endiff
  15.  
  16.   iff "%2" eq "/D" then ^ goto Date_First ^ elseiff "%2" eq "/T" then
  17.     goto Time_First ^ else ^ scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  :  Wrong or missing parameter, program aborted !`
  18.     echo. ^ gosub Help ^ cancel 4
  19.   endiff
  20.  
  21. :Touch
  22.    :┌────────────────────────────────────────────────────────────────────────┐
  23.    :│The DELAY command in the next 6 lines is needed if you useing a cache   │
  24.    :│program such as SMARTDRV.EXE in all other cases you can remove the      │
  25.    :│DELAY command and replace it with the following lines:                  │
  26.    :└────────────────────────────────────────────────────────────────────────┘
  27.    :  iff %@instr[0,5,%_Time] eq %@instr[0,5,%_OrigTime] then ^ gosub Time_Reset
  28.    :    elseiff %_Date eq %_OrigDate then
  29.    :     gosub Date_Reset ^ else
  30.    :    screen 0 0 One moment please, touching time and date of %@inc[%_Counter] files
  31.    :  endiff
  32.  
  33.   iff %@instr[0,5,%_Time] eq %@instr[0,5,%_OrigTime] then ^ gosub Time_Reset
  34.     delay ^ elseiff %_Date eq %_OrigDate then
  35.      gosub Date_Reset ^ delay ^ else
  36.     screen 0 0 One moment please, touching time and date of %@inc[%_Counter] files
  37.   endiff
  38.  
  39.   if %@attrib[%x,r] eq 1 (set Tmpread=Yes ^ attrib /q -r %x)
  40.  
  41.   set _Bar=%@inc[%_Bar]
  42.   iff %_Bar eq 33 then
  43.     set _Bar=1
  44.     if %_Sign eq 219 set _Sign=179
  45.     set _Sign=%@dec[%_Sign]
  46.     if %_Sign eq 175 set _Sign=219
  47.   endiff
  48.  
  49.   screen 2 00 Touching %@upper[%@filename[%x]]%@repeat[%@char[255],5]
  50.   screen 2 26 %@repeat[%@char[%_Sign],%_Bar]
  51.   copy /hbq %x+Nul >& Nul
  52.  
  53.   if "%Tmpread" ne "" (unset Tmpread ^ attrib /q +r %x)
  54.   if "%Tmptime" ne "" (unset Tmptime ^ Time %_Origtime)
  55.   if "%Tmpdate" ne "" (unset Tmpdate ^ Date %_Origdate)
  56.  
  57.   iff %_? eq 0 then
  58.     set _Counter=%@inc[%_Counter] ^ else
  59.     set _Error=%@inc[%_Error]
  60.   endiff
  61.   return
  62.  
  63. :Help
  64.  Text
  65.  
  66.  Purpose: Adjust the timerange and the daterange of one
  67.           or more files with the given time and date.
  68.  
  69.  Format : TOUCH.BTM filespec [/D date] | [/T time]
  70.  
  71.            filespec : One filename or a filespec by use of wildcards (*.*)
  72.  
  73.            date     : The date that has to be assigned to the file(s), you
  74.                       must use the date-separators mandated by the country code
  75.  
  76.            time     : The time that has to be assigned to the file(s), you
  77.                       must use the time-separators mandated by the country code
  78.   Endtext
  79.   setdos /s10:100
  80.   return
  81.  
  82. :Date_Reset
  83.   set Tmpdate=%@filedate[%x]
  84.   date %Tmpdate
  85.   screen 0 0 One moment please, touching times of %@inc[%_Counter] files
  86.   return
  87.  
  88. :Time_Reset
  89.   set Tmptime=%@filetime[%x]:00
  90.   time %Tmptime
  91.   screen 0 0 One moment please, touching dates of %@inc[%_Counter] files
  92.   return
  93.  
  94. :Date_First
  95.   setdos /s0:0
  96.   iff %@len[%3] eq 0 then ^ beep
  97.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Missing date after the /D switch, program aborted !`
  98.     echo. ^ gosub Help ^ cancel 4
  99.   endiff
  100.  
  101.   echo %3 | date >& nul
  102.  
  103.   iff %_Date eq %_OrigDate then ^ beep
  104.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Invalid date entered, program aborted !`
  105.     echo. ^ gosub Help ^ cancel 4
  106.   endiff
  107.  
  108.   iff %@len[%4] eq 0 then ^ goto Execute ^ elseiff "%4" eq "/T" then
  109.     goto Time_Last ^ else ^ beep ^ Date %_OrigDate
  110.     scrput %_Row %_Column %_OrigFg on %_OrigBg %@char[255]Error  : the switch %4 is an invalid parameter, program aborted !
  111.     echo. ^ gosub Help ^ cancel 4
  112.   endiff
  113.  
  114. :Time_Last
  115.   iff %@len[%5] eq 0 then ^ beep
  116.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Missing time after the /T switch, program aborted !`
  117.     echo. ^ gosub Help ^ Date %_OrigDate ^ cancel 4
  118.   endiff
  119.  
  120.   echo %5 | time >& nul
  121.  
  122.   iff %_Time eq %_OrigTime then ^ beep
  123.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Invalid time entered, program aborted !`
  124.     echo. ^ gosub Help ^ Date %_OrigDate ^ cancel 4 ^ else
  125.     goto Execute
  126.   endiff
  127.  
  128. :Time_First
  129.   setdos /s0:0
  130.   iff %@len[%3] eq 0 then ^ beep
  131.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Missing time after the /T switch, program aborted !`
  132.     echo. ^ gosub Help ^ Date %_OrigDate ^ cancel
  133.   endiff
  134.  
  135.   echo %3 | time >& nul
  136.  
  137.   iff %_Time eq %_OrigTime then ^ beep
  138.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Invalid time entered, program aborted !`
  139.     echo. ^ gosub Help ^ Date %_OrigDate ^ cancel
  140.   endiff
  141.  
  142.  iff %@len[%4] eq 0 then ^ goto Execute ^ elseiff "%4" eq "/D" then
  143.     goto Date_Last ^ else ^ beep ^ Time %_OrigTime
  144.     scrput %_Row %_Column %_OrigFg on %_OrigBg %@char[255]Error  : the switch %4 is an invalid parameter, program aborted !
  145.     echo. ^ gosub Help ^ cancel
  146.   endiff
  147.  
  148. :Date_Last
  149.   iff %@len[%5] eq 0 then ^ beep
  150.     scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Missing date after the /D switch, program aborted !`
  151.     echo. ^ gosub Help ^ Time %_OrigTime ^ cancel
  152.   endiff
  153.  
  154.   echo %5 | date >& nul
  155.  
  156.   iff %_Date eq %_OrigDate then ^ beep
  157.      scrput %_Row %_Column %_OrigFg on %_OrigBg ` Error  : Invalid date entered, program aborted !`
  158.      echo. ^ gosub Help ^ Time %_Origtime ^ cancel ^ else
  159.      goto Execute
  160.   endiff
  161.  
  162. :Execute
  163.  cls
  164.  if "%@path[%1]" ne "%_cwds" pushd %@path[%1]
  165.  set _Bar=0
  166.  set _Sign=219
  167.  set _Counter=0
  168.  set _Error=0
  169.  
  170.  For /a:-d %x in (%1) do gosub Touch
  171.  
  172.  Date %_OrigDate
  173.  Time %_OrigTime
  174.  if %_Counter eq 0 Screen 4 0 Warning: No Files have been succesfully touched
  175.  if %_Counter eq 1 Screen 4 0 %_Counter File has been succesfully touched, %_Error file(s) skipped !
  176.  if %_Counter gt 1 Screen 4 0 %_Counter Files have been succesfully touched, %_Error file(s) skipped !
  177.  Screen 5 0
  178.  popd >& nul
  179.  endlocal
  180.  setdos /s10:100
  181.  quit 0
  182.